package chapter05

/**
 * Created with IntelliJ IDEA.
 * ClassName: Test04_Simplify
 * Package: chapter05
 * Description:
 * User: fzykd
 *
 * @Author: LQH
 *          Date: 2023-06-22
 *          Time: 13:42
 */

//函数至简原则
object Test04_Simplify {
  def main(args: Array[String]): Unit = {
    //定义一个普通的完整的函数
    def say(name: String): String = {
      return name
    }

    println(say("大道至简,Scala函数"))


    //1.return可以省略 Scala中最后一行
    def f1(name: String): String = {
      name
    }

    println(f1("1.最后一行是return 可以省略不写"))

    //2.如果函数体只有一行 可以省略
    def f2(name: String): String = {
      name
    }

    println(f2("2.函数体只有一行可以省略"))

    //3.如果返回值类型可以推断出来 可以省略返回值(:返回值)
    def f3(name:String)={
      name
    }
    println(f3("3.返回值类型可以推断出来 可以省略返回值"))

    //4.如果最后一行写了return 就不能省略返回值
    def f4(name:String):String={return name}
    println(f4("写了return就不能省略返回值"))

    //5.如果声明了Unit那么写了返回值也是() 用了return也不起作用

    //6.如果Scala中期望是无返回值类型 可以省略等号
    def f6(name:String){
      name
    }
    println(f6("6.期望是无返回值类型,可以省略等号 最后返回结构也是()"))

    //7.如果函数无参,但是申明了参数列表 调用得时候可以写() 也可以不写()
    //8.如果是无参数列表得函数 可以不写() 那么调用的时候 也不写()
    //9.如果不关心名称 只关心逻辑 那么def 函数名称都可以省略 大名鼎鼎的匿名函数
    //匿名函数 最关键的是使用 => 这个符号识别

    (name:String) => {println(name)}


  }
}
